The growth in size and complexity of computer networks has made network management an increasingly difficult task. As a result, a number of software applications have been developed to automate management of computer systems and networks. These applications are referred to in this document as management agents. Management agents are designed to allow the state of entities, such as computer systems, disks and processes, to be remotely monitored and managed. Many management agents perform these functions on a network wide basis. This allows large numbers of entities within a network to be centrally analyzed and managed.
Most management agents have been developed to manage specific entity types. As a result, a single computer network may include several different management agents. For example, a representative network may use a first management agent to manage disks and a second management agent to manage software applications. This complicates the network management task by forcing network operators to learn and use the features of several different management agents.
Enterprise management frameworks (also known as EM frameworks) are software applications that have been developed to simplify the use of different management agents. To accomplish this end, EM frameworks attempt to provide a single, unified interface to different management agents. An effective method for providing this type of interface is to treat entities, such as computer systems, disks and processes, as objects. The objects within a computer network may then be grouped into a hierarchy. The object hierarchy provides a structure that may be visually navigated. Objects within the hierarchy can be manipulated to manage their associated entities.
The unified interface provided by EM frameworks greatly simplifies the task of network management. As a result, it is generally desirable to extend EM frameworks to provide this interface for a wide range of management agents. Unfortunately, providing this type of cross-compatibility between EM frameworks and management agents can be complex. This complexity results, partially, because each management agent and each EM framework will typically have its own programming interface. Integrating an EM framework with a group of management agents means adapting the programming interfaces of the framework and each agent. This work may have to be redone if a new EM framework or agent is used or if an updated programming interface is provided for an existing EM framework or agent. Effectively, when traditional methods are used, EM frameworks and management agents form part of a closed architecture. These architectures are expensive to implement, expensive to maintain, and expensive to adapt or upgrade.
Integrating multiple management agents with EM frameworks may also result in complex runtime problems. As an example, consider the case where two management agents both report status for a particular entity. A question arises as to how an EM framework will proceed if the two management agents do not agree on the status of the entity. Furthermore, where multiple management agents are used, it may be difficult for the EM framework to determine which management agent should process a given user command.
Integrating multiple management agents with EM frameworks also tends to increase the number of objects that must be managed. In large networks, this may increase the number of managed objects to the point that an EM framework would provide unacceptable performance or require unacceptable initialization periods.
Based on the preceding discussion, it may be appreciated that there is a need for systems that facilitate the integration of management agents and EM frameworks. It is important for systems of this type to be inexpensive to implement, inexpensive to maintain, and inexpensive to adapt or upgrade. These systems need to correctly report entity status and correctly direct user commands. These systems also need to scale to large network environments without suffering unacceptable performance degradation.